#ifndef HTTP_REQUEST_H_INCLUDED
#define HTTP_REQUEST_H_INCLUDED

#include <string>
#include <map>
#include <vector>
using std::string;
using std::map;
using std::vector;

namespace vmon_web
{

class HttpRequest
{
public:
    HttpRequest();
    virtual ~HttpRequest();
    string getValue(const string& key) const;
    map<string, string> const& getKeywords() const {
        return m_keywords;
    }
    void setPath(const string& str) { m_path = str;}
    string getPath() const { return m_path; }
    void setCommand(const string& str) { m_command = str; }
    string getCommand() const { return m_command; }
    void setVersion(const string& str) { m_version = str; }
    string getVersion() const { return m_version; }
    void setValue(const string& str);
    void setValue(const string& key, const string& value);
    unsigned int getContentLength();
    vector<unsigned char> & getContent();
    void addContentByte(unsigned char c);
private:
    map<string, string> m_keywords;
    vector<unsigned char> m_content;
    unsigned int m_contentLength;
    string m_command;
    string m_path;
    string m_version;
};

}

#endif // HTTP_REQUEST_H_INCLUDED
